//
// Created by Tony on 2024/5/19.
//

#ifndef LEXER_NULL_TOKEN_H
#define LEXER_NULL_TOKEN_H

#include "../../common/KeyWords.h"
#include "Token.h"

namespace Lexer {

class NullToken final : public Token {
public:
    explicit NullToken(const Position& position) : Token(position) {}

    TokenType type() override { return TokenType::NULL_LITERAL; }

    static std::nullptr_t getValue() { return nullptr; }

    string toString() override { return KeyWords::NIL; }
};

} // namespace Lexer

#endif // LEXER_NULL_TOKEN_H
